#导入random模块
import random

#导入Image,ImageDraw,ImageFont模块
from PIL import Image,ImageDraw,ImageFont
class SecuirtyCode():

    def __init__(self):

        #定义使用Image类实例化一个长为120px,宽为30px,基于RGB的(255,255,255)颜色的图片
        self.img=Image.new(mode="RGB",size=(100,30),color=(200,200,200))

        #实例化一支画笔
        self.draw=ImageDraw.Draw(self.img,mode="RGB")

        #定义要使用的字体
        self.font=ImageFont.truetype("arial.ttf",24)

    def drawPic(self):
        self.string = ''
        for i in range(5):
            #每循环一次,从a到z中随机生成一个字母或数字
            #65到90为字母的ASCII码,使用chr把生成的ASCII码转换成字符
            #str把生成的数字转换成字符串
            char=random.choice([chr(random.randint(65,90)),str(random.randint(0,9))])
            self.string += char
            #每循环一次重新生成随机颜色
            color=(random.randint(0,255),random.randint(0,255),random.randint(0,255))
    
            #把生成的字母或数字添加到图片上
            #图片长度为120px,要生成5个数字或字母则每添加一个,其位置就要向后移动24px
            self.draw.text([i*20,0],char,color,font=self.font)
    
    def save(self):
        #把生成的图片保存为"pic.png"格式
        with open("pic\\pic.png","wb") as f:
            self.img.save(f,format="png")
        return self.string


# a = SecuirtyCode()
# a.drawPic()
# print(a.save())
